package com.lvy.hczn.front.common.constant;

import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 通用常量信息
 *
 * @author ruoyi
 */
public class Constants {
    /**
     * UTF-8 字符集
     */
    public static final String UTF8 = "UTF-8";

    /**
     * GBK 字符集
     */
    public static final String GBK = "GBK";

    /**
     * http请求
     */
    public static final String HTTP = "http://";

    /**
     * https请求
     */
    public static final String HTTPS = "https://";

    /**
     * 通用成功标识
     */
    public static final String SUCCESS = "0";

    /**
     * 通用失败标识
     */
    public static final String FAIL = "1";

    /**
     * 登录成功
     */
    public static final String LOGIN_SUCCESS = "Success";

    /**
     * 注销
     */
    public static final String LOGOUT = "Logout";

    /**
     * 注册
     */
    public static final String REGISTER = "Register";

    /**
     * 登录失败
     */
    public static final String LOGIN_FAIL = "Error";

    /**
     * 系统用户授权缓存
     */
    public static final String SYS_AUTH_CACHE = "sys-authCache";

    /**
     * 参数管理 cache name
     */
    public static final String SYS_CONFIG_CACHE = "sys-config";

    /**
     * 参数管理 cache key
     */
    public static final String SYS_CONFIG_KEY = "sys_config:";

    /**
     * 字典管理 cache name
     */
    public static final String SYS_DICT_CACHE = "sys-dict";

    /**
     * 字典管理 cache key
     */
    public static final String SYS_DICT_KEY = "sys_dict:";

    /**
     * 仓库数据字典变动，是否允许向队列发送消息
     */
    public static final String SYS_DICT_KEY_SEND_MSG = "send_msg";

    /**
     * 数据字典仓库类型
     */
    public static final String SYS_DICT_WAREHOUSE_TYPE = "warehouse_type";

    /**
     * 分拣员从平台同步，初始化默认用户角色
     */
    public static final String SYS_DICT_SORTER_POST_ROLE = "sorter_post_role";

    /**
     * 分拣角色
     */
    public static final String SYS_DICT_SORTER_ROLE = "sorter_role";

    /**
     * 普通员工
     */
    public static final String SYS_DICT_SORTER_POST = "user";

    /**
     * 报损类型
     */
    public static final String SYS_DICT_FRM_LOST = "frm_lost";

    /**
     * 物品损坏
     */
    public static final String SYS_DICT_FRM_LOST_BREAKAGE = "breakage";

    /**
     * 发货配送
     */
    public static final String SYS_DICT_ORDER_TYPE = "order_type";

    /**
     * 发货订单前缀（供应商自配）
     */
    public static final String SYS_DICT_ORDER_TYPE_FH = "order_type_fh";

    /**
     * 配送订单前缀
     */
    public static final String SYS_DICT_ORDER_TYPE_PS = "order_type_ps";

    /**
     * 退货订单前缀
     */
    public static final String SYS_DICT_ORDER_TYPE_TH = "order_type_th";

    /**
     * 销售订单配送前缀
     */
    public static final String SYS_DICT_ORDER_TYPE_XS = "order_type_xs";

    /**
     * 运输单前缀
     */
    public static final String SYS_DICT_ORDER_TYPE_YD = "order_type_yd";

    /**
     * 包裹前缀
     */
    public static final String SYS_DICT_ORDER_TYPE_BG = "order_type_bg";

    /**
     * 仓库初始化
     */
    public static final String SYS_DICT_WAREHOUSE_INIT = "warehouse_init";

    /**
     * 页面入库类型
     */
    public static final String SYS_DICT_ENTRY_PAGE_TYPE = "entry_page_type";

    /**
     * 省市区的区ID
     */
    public static final String SYS_DICT_WAREHOUSE_INIT_WAREHOUSE_AREA = "warehouse_area_code";

    /**
     * 仓库运营区域编码
     */
    public static final String SYS_DICT_WAREHOUSE_INIT_WAREHOUSE_REGION_CODE = "warehouse_region_code";

    /**
     * 仓库类型
     */
    public static final String SYS_DICT_WAREHOUSE_INIT_WAREHOUSE_TYPE = "warehouse_type_code";

    /**
     * 货箱正则表达式
     */
    public static final String SYS_DICT_BOX_CODE_REG = "box_code_reg";

    /**
     * 货箱正则表达式
     */
    public static final String SYS_DICT_BOX_CODE_REG_INFO = "box_code_reg_info";

    /**
     * 合箱数据字典类型
     */
    public static final String SYS_DICT_MERGE_TYPE = "merge_type";

    /**
     * 合箱数据字典百分比置
     */
    public static final String SYS_DICT_MERGE_TYPE_PERCENT = "merge_type_percent";

    /**
     * 货箱内物品小于货箱体积百分之15时合箱
     */
    public static final String SYS_DICT_MERGE_REMAINING_PERCENTAGE = "remaining_percentage";

    /**
     * 新货箱称重时，获取生产商信息
     */
    public static final String SYS_DICT_MERGE_BOX_SUPPLIER_INFO = "box_supplier_info";

    /**
     * 小票打印数据字典类型
     */
    public static final String SYS_DICT_PRINTER = "printer";

    /**
     * 小票打印数据字典打印机编号
     */
    public static final String SYS_DICT_PRINTER_SN = "sn";

    /**
     * 货箱大小
     */
    public static String BOX_SIZE_INFO = "box_size";

    /**
     * 大货箱
     */
    public static String BOX_SIZE_BIG_INFO = "box_size_big_info";

    /**
     * 小货箱
     */
    public static String BOX_SIZE_SMALL_INFO = "box_size_small_info";

    /**
     * 大货箱占位，用这个来处理货箱生产商在生成大货箱时的货箱编码规则
     */
    public static String BOX_SIZE_DIGIT_CAPACITY_BIG = "digit_capacity_big";

    /**
     * 小货箱占位，用这个来处理货箱生产商在生成小货箱时的货箱编码规则
     */
    public static String BOX_SIZE_DIGIT_CAPACITY_SMALL = "digit_capacity_small";

    /**
     * 货箱误差管理
     */
    public static String BOX_TYPE_ERROR_RANGE = "box_error_range";

    /**
     * 大货箱，货箱净重误差上浮最大值，单位g
     */
    public static String BOX_ERROR_MAX_BIG = "error_max_1";

    /**
     * 大货箱，货箱净重误差下浮最大值，单位g
     */
    public static String BOX_ERROR_MIN_BIG = "error_min_1";

    /**
     * 小货箱货箱净重误差上浮最大值，单位g
     */
    public static String BOX_ERROR_MAX_SMALL = "error_max_2";

    /**
     * 小货箱，货箱净重下浮最大值，单位g
     */
    public static String BOX_ERROR_MIN_SMALL = "error_min_2";

    /**
     * 生成货箱时的大小货箱区分：大货箱
     */
    public static Integer BOX_SIZE_BIG = 0;

    /**
     * 生成货箱时的大小货箱区分：小货箱
     */
    public static Integer BOX_SIZE_SMALL = 1;

    /**
     * 资源映射路径 前缀
     */
    public static final String RESOURCE_PREFIX = "/profile";

    /**
     * RMI 远程方法调用
     */
    public static final String LOOKUP_RMI = "rmi:";

    /**
     * LDAP 远程方法调用
     */
    public static final String LOOKUP_LDAP = "ldap:";

    /**
     * LDAPS 远程方法调用
     */
    public static final String LOOKUP_LDAPS = "ldaps:";

    /**
     * 未删除（有效）
     */
    public static final String DEL_FLAG_DELETE_FALSE = "0";

    /**
     * 删除（无效）
     */
    public static final String DEL_FLAG_DELETE_TRUE = "1";

    /**
     * 定时任务白名单配置（仅允许访问的包名，如其他需要可以自行添加）
     */
    public static final String[] JOB_WHITELIST_STR = {"com.lvy.hczn.front", "com.lvy.hczn.transmit"};

    /**
     * 定时任务违规的字符
     */
    public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.lvy.hczn.front.common.utils.file", "com.lvy.hczn.front.common.config"};


    /**
     * 数据字典下设置的访问数据转发中心的类型以及地址账户密码
     */
    public static final String INTER_TRANSMIT_DICT_TYPE = "wh_sync_info";

    /**
     * 地址
     */
    public static final String INTER_URL = "url";

    /**
     * 账户
     */
    public static final String INTER_USERNAME = "username";

    /**
     * 仓库编号地址
     */
    public static final String INTER_WAREHOUSE_CODE_URL = "warehouse_code_url";

    /**
     * 密码
     */
    public static final String INTER_PASSWORD = "password";

    /**
     * 仓库初始化时，从数据转发中心同步温区
     */
    public static final String TEMPERATURE_ZONE_URL = "temperature_zone_url";

    /**
     * 仓库初始化时，从数据转发中心同步分类
     */
    public static final String INTER_CATEGORY_URL = "category_url";

    /**
     * 商品sku规格同步
     */
    public static final String INTER_SPU_SKU_URL = "spu_sku_url";

    /**
     * 仓库信息推送接口
     */
    public static final String INTER_TRANSMIT_WAREHOUSE_URL = "warehouse_platform_url";

    /**
     * 平台同步信息
     */
    public static final String INTER_TRANSMIT_PLATFORM_SYNC_INFO = "platform_sync_info";

    /**
     * 总仓查询
     */
    public static final String INTER_TRANSMIT_PARENT_WAREHOUSE = "warehouse_parent_list";

    /**
     * 货箱规格查询
     */
    public static final String INTER_TRANSMIT_GOODS_SPEC = "goods_spec_url";

    /**
     * 入库单同步到平台
     */
    public static final String INTER_TRANSMIT_WAREHOUSE_ENTRY = "platform_warehouse_entry";

    /**
     * 空箱出入库单同步到平台
     */
    public static final String INTER_TRANSMIT_WAREHOUSE_BOX_ENTRY = "platform_warehouse_box_entry";

    /**
     * 空箱出入库单同步到平台
     */
    public static final String INTER_TRANSMIT_WAREHOUSE_BOX_ADD = "platform_warehouse_box_add";

    /**
     * 出库单同步到平台
     */
    public static final String INTER_TRANSMIT_WAREHOUSE_OUT = "platform_warehouse_out";

    /**
     * 报损/降级同步到平台
     */
    public static final String INTER_TRANSMIT_FRMLOST_RELEGATE = "frmlost_relegate";

    /**
     * 仓库出入库库位调整
     */
    public static final String INTER_TRANSMIT_SHELF_LOCATION = "shelf_location";

    /**
     * 配送单-配送员入仓,适用于销售配送接口
     */
    public static final String INTER_ARRIVE_DELIVERY_CLERK = "arrive_delivery_clerk";

    /**
     * 运输单送达通知
     */
    public static final String INTER_ARRIVE_TRANSPORT_MSG = "transport_msg";

    /**
     * 发货配送，供应商自配，不走配送单流程接口
     */
    public static final String INTER_ARRIVE_GOODS_ENTRY_FH = "arrive_goods_entry_fh";

    /**
     * 发货入仓通知
     */
    public static final String INTER_ARRIVE_GOODS_ENTRY_FH_ALL = "arrive_goods_entry_fh_all";

    /**
     * 配送单-货物入仓通知，适用于发货配送，退货配送，拒收配送接口
     */
    public static final String INTER_ARRIVE_GOODS_ENTRY_PS = "arrive_goods_entry_ps";

    /**
     * 包裹出入库通知
     */
    public static final String INTER_ARRIVE_PARCEL_ENTRY = "arrive_parcel_entry";

    /**
     * 平台域名字典类型
     */
    public static final String PLATFORM_DOMAIN = "platform_domain";

    /**
     * 平台图片域名地址
     */
    public static final String PLATFORM_DOMAIN_IMG = "platform_domain_img";

    /**
     * 平台接口域名地址
     */
    public static final String PLATFORM_DOMAIN_INTER = "platform_domain_inter";

    /**
     * 数据转发中心域名
     */
    public static final String DATA_TRANSMIT_INTER = "data_transmit_inter";

    /**
     * 数据字典区域编码的数据字典类型
     */
    public static final String WAREHOUSE_REGION_AREA = "region_area";

    /**
     * 销售分拣出库，更新到配送端
     */
    public static final String WAREHOUSE_SALE_OUT_DELIVERY = "sale_out_delivery";

    /**
     * 销售分拣出库，更新到平台库存
     */
    public static final String WAREHOUSE_SALE_OUT_STOCK = "sale_out_stock";

    /**
     * 调拨分拣完成通知
     */
    public static final String TRANSFER_SORT_DONE_MSG = "transfer_sort_done_msg";

    /**
     * 货箱生产商新增或修改同步
     */
    public static final String BOX_SUPPLIER_SYNC = "box_supplier_sync";

    /**
     * 货箱生产商删除同步
     */
    public static final String BOX_SUPPLIER_DEL = "box_supplier_del";

    /**是否进行通用信息同步，数据字典为空或者为false时，不同步*/
    public static final String SYNC_COMMON  = "sync_common";

    /**是否进行通用信息同步，数据字典为空或者为false时，不同步*/
    public static final String SYNC_COMMON_INFO  = "sync_common_info";

    /**
     * 总仓
     */
    public static String WAREHOUSE_TYPE_WMS = "0";

    /**
     * 前置仓
     */
    public static String WAREHOUSE_TYPE_WMS_FRONT = "1";

    /**
     * 启用
     */
    public static String WAREHOUSE_STATUS_ENABLE = "0";

    /**
     * 停用
     */
    public static String WAREHOUSE_STATUS_DISABLED = "1";

    /**
     * 重置密码
     */
    public static String WAREHOUSE_STATUS_RESET = "3";

    /**
     * token
     */
    public static final String AUTH_TOKEN = "token";

    /**
     * 26个字母数组
     */
    public static final String[] ALPHABET = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};

    /**
     * 已被占用
     */
    public static final String OCCUPY_TRUE = "1";

    /**
     * 未被占用
     */
    public static final String OCCUPY_FALSE = "0";

    /**
     * 货箱生产商权限字符
     */
    public static final String ROLE_SUPPLIER_BOX_GEN = "supplier_box_gen";

    /**
     * 门禁分类：1：分拣登录
     */
    public static final String ACCESS_TYPE_ONE = "1";

    /**
     * 门禁分类：2：配送单(发货配送)
     */
    public static final Integer ACCESS_TYPE_TWO = 2;

    /**
     * 门禁分类：3、运输单
     */
    public static final Integer ACCESS_TYPE_THREE = 3;

    /**
     * 门禁分类：4、货箱租赁
     */
    public static final Integer ACCESS_TYPE_FOUR = 4;

    /**
     * 门禁分类：5：配送单（销售退货配送，拒收配送）
     */
    public static final Integer ACCESS_TYPE_FIVE = 5;

    /**
     * 门禁分类：6：供应商自配到仓库
     */
    public static final Integer ACCESS_TYPE_SIX = 6;

    /**
     * 门禁分类：7：销售配送
     */
    public static final Integer ACCESS_TYPE_SEVEN = 7;

    /**
     * 入库类型（1：空箱入库，不入仓库货架）
     */
    public static final Integer GOODS_BOX_ENTRY = 1;

    /**
     * 入库类型（2：空箱出库）
     */
    public static final Integer GOODS_BOX_OUT = 2;

    /**
     * 来源默认配置
     */
    public static final String SOURCE_ID_DEFAULT = "platform";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_ZERO = "0";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_ONE = "1";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_TWO = "2";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_THREE = "3";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_FOUR = "4";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_FIVE = "5";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣；6：已完成（如退货入库完成）
     */
    public static final String SALE_ORDER_DETAIL_STATUS_SIX = "6";

    /**
     * 销售单类型（1：销售单；2：销售退货单）
     */
    public static final String SALE_ORDER_TYPE_ONE = "1";

    /**
     * 销售单类型（1：销售单；2：销售退货单）
     */
    public static final String SALE_ORDER_TYPE_TWO = "2";

    /**
     * 销售单类型（1：销售单；2：销售退货单；4：拒收）
     */
    public static final String SALE_ORDER_TYPE_FOUR = "4";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_ZERO = "0";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_ONE = "1";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_TWO = "2";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_THREE = "3";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_FOUR = "4";

    /**
     * 0：待分拣,1：正在分拣(已分配任务给分拣员，处于分拣员分拣中或等待分拣员分拣),2：已分拣 3：已退货 4：分拣缺货 5：异常分拣
     */
    public static final String SALE_ORDER_STATUS_FIVE = "5";

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_ONE = 1;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_TWO = 2;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_THREE = 3;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_FOUR = 4;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_FIVE = 5;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_SIX = 6;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_SEVEN = 7;

    /**
     * 同步类型; 1铺货入库，2调拨入库，3退单入库，4补货入库，6销售出库，7报损出库，8调拨出库
     */
    public static final Integer WAREHOUSE_ENTRY_OUT_TYPE_eight = 8;

    /**
     * 分拣类型：1、销售订单分拣；2、调拨订单分拣；3、调拨包裹分拣
     */
    public static final Integer SORT_TASK_DETAIL_TYPE_ONE = 1;

    /**
     * 分拣类型：1、销售订单分拣；2、调拨订单分拣；3、调拨包裹分拣
     */
    public static final Integer SORT_TASK_DETAIL_TYPE_TWO = 2;

    /**
     * 分拣类型：1、销售订单分拣；2、调拨订单分拣；3、调拨包裹分拣
     */
    public static final Integer SORT_TASK_DETAIL_TYPE_THREE = 3;

    /**
     * 货箱类型 调拨配送入库
     */
    public static String GOODS_BOX_TYPE_SIX = "6";

    /**
     * 调拨在途
     */
    public static String GOODS_BOX_STATE_SIX = "6";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_ONE = "CSRK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_TWO = "CGRK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_THREE = "XSBH";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_FOUR = "DBRK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_FIVE = "HSCK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_SIX = "QXRK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_SEVEN = "TDRK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_EIGHT = "FHCK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_NINE = "DBCK";

    /**
     * 单据类型:"CSRK": "铺货入库", "CGRK": "预售补货"，“XSBH”："销售补货",
     * "DBRK": "调拨入库","DBCK": "调拨出库", "HSCK": "临期报损", "QXRK": "取消入库",
     * "TDRK": "退单入库", "FHCK": "销售出库单","SHBS":"损坏报损"
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_TEN = "SHBS";

    /**
     * 销售缺货报损
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_ELEVEN = "XSBS";

    /**
     * 预售补货
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_TWELVE = "YSBH";

    /**
     * 包裹入库
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_THIRTEEN = "BGRK";

    /**
     * 包裹出库
     */
    public static String WAREHOUSING_ENTRY_DATA_TYPE_FORTENEEN = "BGCK";

    /**
     * 数据类型：1：销售分拣；2：调拨分拣
     */
    public static Integer SORT_TASK_DATA_TYPE_ONE = 1;

    /**
     * 数据类型：1：销售分拣；2：调拨分拣
     */
    public static Integer SORT_TASK_DATA_TYPE_TWO = 2;

    /**
     * 数据类型：1：入库异常；2：出库异常；
     */
    public static Integer DATA_EXCEPTION_ENTRY = 1;

    /**
     * 数据类型：1：入库异常；2：出库异常；
     */
    public static Integer DATA_EXCEPTION_OUT = 2;

    /**
     * 异常类型1 货箱缺失，2重量异常
     */
    public static Integer DATA_EXCEPTION_DETAIL_LOST = 1;

    /**
     * 异常类型1 货箱缺失，2重量异常
     */
    public static Integer DATA_EXCEPTION_DETAIL_WEIGHT = 2;

    /**
     * 有效，未删除
     */
    public static int DEL_FLAG_VALID = 0;

    /**
     * 无效，已删除
     */
    public static int DEL_FLAG_INVALID = 1;

    /**
     * 报损出入库单的ticketType值
     */
    public static String WAREHOUSE_ENTRY_LOSS = "HSCK";

    /**
     * 取/送货地类型:0:仓库,1:供应商
     */
    public static Integer TRANSPORT_ARRIVE_TYPE_ZERO = 0;

    /**
     * 取/送货地类型:0:仓库,1:供应商
     */
    public static Integer TRANSPORT_ARRIVE_TYPE_ONE = 1;

    /**
     * 类型:0:取货,1:送货
     */
    public static Integer TRANSPORT_DETAIL_TYPE_ZERO = 0;

    /**
     * 类型:0:取货,1:送货
     */
    public static Integer TRANSPORT_DETAIL_TYPE_ONE = 1;

    /**
     * 原料箱出库
     */
    public static int OUTBOUND_ORDER_TYPE_FOUR = 4;

    /**
     * OutboundOrderDetail表：0、待出库
     */
    public static String OUTBOUND_DETAIL_STATUS_ZERO = "0";

    /**
     * 0、wms物品报损；1、从平台同步的临期报损
     */
    public static Integer FRM_LOSS_DATA_TYPE_ZERO = 0;

    /**
     * 0、wms物品报损；1、从平台同步的临期报损
     */
    public static Integer FRM_LOSS_DATA_TYPE_ONE = 1;

    /**
     * 平台删除
     */
    public static Integer IS_DELETE_TRUE = 0;

    /**
     * 平台正常
     */
    public static Integer IS_DELETE_FALSE = 1;

    /**
     * 入库库位调整
     */
    public static Integer SHELF_LOCATION_ENTRY = 1;

    /**
     * 出库库位调整
     */
    public static Integer SHELF_LOCATION_OUT = 2;

    /**
     * 进入仓库首页，根据页面类型取值
     */
    public static String PAGE_EMPTY = "empty";

    /**
     * 预售类型（0:非预售，1：预售,）
     */
    public static Integer OUT_STOCK_ZERO = 0;

    /**
     * 预售类型（0:非预售，1：预售,）
     */
    public static Integer OUT_STOCK_ONE = 1;

    /**
     * 叠箱数据字典定时任务类型
     */
    public static String SCHEDULED_TASKS = "scheduled_tasks";

    /**
     * 仓库叠箱百分比
     */
    public static String SCHEDULED_TASKS_WAREHOUSE_PERCENT = "task_warehouse_percent";

    /**
     * 是否占用：0、否；1、是
     */
    public static Integer OCCUPIED_FALSE = 0;

    /**
     * 是否占用：0、否；1、是
     */
    public static Integer OCCUPIED_TRUE = 1;

    /**
     * 类型0:入库,1:出库
     */
    public static Integer BOX_EMPTY_SERVICE_TYPE_IN = 0;

    /**
     * 类型0:入库,1:出库
     */
    public static Integer BOX_EMPTY_SERVICE_TYPE_OUT = 1;

    /**
     * 0清箱入库,1采购入库,2调拨入库,3报损入库,4其他入库,5取箱出库,6调拨出库7其他出库
     */
    public static Integer BOX_EMPTY_OVER_TYPE_ZERO = 0;

    /**
     * 0清箱入库,1采购入库,2调拨入库,3报损入库,4其他入库,5取箱出库,6调拨出库7其他出库
     */
    public static Integer BOX_EMPTY_OVER_TYPE_ONE = 1;

    /**
     * 0清箱入库,1采购入库,2调拨入库,3报损入库,4其他入库,5取箱出库,6调拨出库7其他出库
     */
    public static Integer BOX_EMPTY_OVER_TYPE_FIVE = 5;

    /**
     * 是否物件领取电脑登录，0：否；1：是
     */
    public static Integer GOODS_COLLECT_NO = 0;

    /**
     * 是否物件领取电脑登录，0：否；1：是
     */
    public static Integer GOODS_COLLECT_YES = 1;

    /**
     * 是否标品，0：否；1：是
     */
    public static Integer SPU_STANDARD_ZERO = 0;

    /**
     * 是否标品，0：否；1：是
     */
    public static Integer SPU_STANDARD_ONE = 1;

    /**
     * 虚拟货箱数据字典
     */
    public static String VIRTUALLY_BOX_GOODS = "virtually_box_goods";

    public static String VIRTUALLY_BOX_GOODS_BOX_CODE = "box_code";

    /**
     * 采购类型：0：采购入库（如：铺货补货等）；1：采购出库（如：调拨）
     */
    public static Integer PURCHASE_TYPE_ZERO = 0;

    /**
     * 采购类型：0：采购入库（如：铺货补货等）；1：采购出库（如：调拨）
     */
    public static Integer PURCHASE_TYPE_ONE = 1;

    /**
     * 单据来源 0:C端,1:B端
     */
    public static Integer SOURCE_ORIGIN_B = 1;

    /**
     * 单据来源 0:C端,1:B端
     */
    public static Integer SOURCE_ORIGIN_C = 0;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中")
    public static Integer TRANSFER_ORDER_STATUS_ZERO = 0;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_ONE = 1;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_TWO = 2;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_THREE = 3;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_FOUR = 4;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_FIVE = 5;

    @ApiModelProperty(value = "调拨状态：0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    public static Integer TRANSFER_ORDER_STATUS_SIX = 6;

    @ApiModelProperty(value = "是否大件，0：否，1：是")
    public static Integer BIG_PRODUCT_FALSE = 0;

    @ApiModelProperty(value = "是否大件，0：否，1：是")
    public static Integer BIG_PRODUCT_TRUE = 1;

    @ApiModelProperty(value = "业务类型：0:调拨加工，1:供应商加工")
    public static Integer PRODUCTION_PROCESSING_SERVICE_TYPE_ZERO=0;

    @ApiModelProperty(value = "业务类型：0:调拨加工，1:供应商加工")
    public static Integer PRODUCTION_PROCESSING_SERVICE_TYPE_ONE=1;

    /**
     * 入库类型列表
     *
     * @param
     * @return java.util.List<java.lang.String>
     * @author yw
     * @date 2023-09-24 19:52:23
     */
    public static List<String> entryDataTypeList() {
        List<String> dataTypes = new ArrayList<>();
        dataTypes.add(WAREHOUSING_ENTRY_DATA_TYPE_ONE);
        dataTypes.add(WAREHOUSING_ENTRY_DATA_TYPE_TWO);
        dataTypes.add(WAREHOUSING_ENTRY_DATA_TYPE_THREE);
        dataTypes.add(WAREHOUSING_ENTRY_DATA_TYPE_FOUR);
        dataTypes.add(WAREHOUSING_ENTRY_DATA_TYPE_TWELVE);
        dataTypes.add("BGRK");
        return dataTypes;
    }

    /**
     * 入库类型列表
     *
     * @param
     * @return java.util.List<java.lang.String>
     * @author yw
     * @date 2023-09-24 19:52:23
     */
    public static Map<String, String> boxSizeMap() {
        Map<String, String> map = new HashMap<>();
        map.put(BOX_SIZE_BIG_INFO, BOX_SIZE_BIG_INFO);
        map.put(BOX_SIZE_SMALL_INFO, BOX_SIZE_SMALL_INFO);
        return map;
    }
}